<?php
namespace app\common\service;


use common\util\Tools;

class MsgService {
    
    /**
     * 充值成功
     * @param string $openid
     * @param float $money
     * @param float $account
     * @param string $addTime
     * @param string $remark
     */
    public static function sendRechargeSuccessMsg($openid,$money,$account,$addTime,$remark='') {
        // 充值成功通知：充值成功，您本次的充值金额为XXXXX.XX元！本次充值申请时间：2018.01.01 12:00:00，到账时间：2018.01.01 12:10:00
        $addTime = date('Y.m.d H:i',strtotime($addTime));
        $endTime = date('Y.m.d H:i');
        $data = [
            'openid' => $openid,
            'first' => sprintf('充值成功,您本次的充值金额为%s元！',$money),
            'money'=>$money,
            'time' => date('Y.m.d H:i'),
            'account'=> $account,
            'remark' => $remark ? $remark : sprintf('本次充值申请时间：%s，到账时间：%s',$addTime,$endTime),
            'url' => get_host().'/mobile/index/assets.html'
        ];
        
        NoticeService::sendRechargeSuccessMsg($data);
    }
    
    /**
     * 充值失败
     * @param string $openid
     * @param string $time
     * @param string $remark
     */
    public static function sendRechargeFailMsg($openid,$time,$remark='') {
        //充值失败，请在确认打款金额高于最低充值金额1000.00元，且上传的支付截图正确清晰后，重新提交充值申请。（如充值申请金额低于1000.00元，请补齐差额后重新提交充值申请）
        $data = [
            'openid' => $openid,
            'first' => '充值失败',
            'result'=>"审核未通过",
            'time' => $time,
            'remark' => $remark ? $remark : '请在确认打款金额高于最低充值金额1000.00元，且上传的支付截图正确清晰后，重新提交充值申请。（如充值申请金额低于1000.00元，请补齐差额后重新提交充值申请）',
            'url' => get_host().'/mobile/index/assets.html'
        ];
        
        NoticeService::sendRechargeFailMsg($data);
    }
    
    /**
     * 订单取消
     * @param string $openid
     * @param int $id
     * @param string $orderNo
     * @param float $money
     */
    public static function sendOrderCancelMsg($openid,$id,$orderNo,$money){
        $data = [
            'openid' => $openid,
            'first' => '订单取消通知',
            'order_no' => $orderNo,
            'money'=> $money,
            'remark' => sprintf('对不起，您的订单编号%s交易失败，已支付的金额将在1小时内返还至您的虚拟币余额。给您带来的不便望请谅解！点击查看订单详情',$orderNo),
            'url' => get_host().sprintf('/mobile/index/order_detail.html?id=%s',$id),
        ];
        //订单驳回通知：对不起，您的订单编号123456789012345交易失败，已支付的金额将在1小时内返还至您的虚拟币余额。给您带来的不便望请谅解！点击查看订单详情。
        NoticeService::sendOrderCancelMsg($data);
        
    }
    
    /**
     * 支付成功通知
     * @param string $openid
     * @param int $id
     * @param string $orderNo
     * @param string $goodsname
     * @param float $money
     * @param string $received
     * @param string $tel
     */
    public static function sendOrderPayMsg($openid,$id,$orderNo,$goodsname,$money,$received,$tel) {
        $data = [
            'openid' => $openid,
            'first' => '订单付款通知',
            'name'=>$goodsname,
            'order_no' => $orderNo,
            'money'=> $money,
            'remark' => sprintf('订单编号：%s已付款。收货人：%s，联系电话：%s，订单金额：%s元。我们将第一时间为您备货，请耐心等待。点击查看订单详情',$orderNo,$received,$tel,$money),
            'url' => get_host().sprintf('/mobile/index/order_detail.html?id=%s',$id),
        ];
        //订单付款通知：订单编号：123456789012345已付款。收货人：XXX，联系电话：18210090518，订单金额：1000.00元。我们将第一时间为您备货，请耐心等待。点击查看订单详情。
        NoticeService::sendOrderPayMsg($data);
    }
    
    /**
     * 注册成功消息
     * @param string $openId
     * @param string $name
     */
    public static function sendRegSuccessMsg($openId,$name) {
        
        $data = [
            'openid' => $openId,
            'name' => $name,
            'first' => sprintf("尊敬的%s：您好！恭喜您成功注册成为品正商。", $name),
            'remark' => sprintf('您的登陆账号为注册手机号，密码默认为手机号后六位。请您牢记您的用户名与密码，并于首次登陆后尽快修改您的初始密码。首次充值的货款将在1小时内到账。前去登陆'),
            'url' => get_host().'/mobile/index/login.html'
        ];
        
        NoticeService::sendRegSuccessMsg($data);
    }
    
    /**
     * 注册失败消息
     * @param int $passportUid
     * @param int $fid
     */
    public static function sendRegFailMsg($openid,$pid,$beizhu) {
        $remark = empty($beizhu)? '请在确认打款金额正确，且上传的支付截图正确清晰后，重新提交注册申请': "原因:".$beizhu;
        $data = [
            'openid' => $openid,
            'time' => Tools::getDisplayDate(),
            'first' => '对不起，您的注册申请被驳回。',
            'remark' => $remark,
            'url' => sprintf('%s/mobile/index/register.html?fid=%d',get_host(),$pid)
        ];
        
        NoticeService::sendRegFailMsg($data);
    }
    
    /**
     * 邀请代理成功消息
     * @param int $passportUid
     * @param int $id 下级代理id
     * @param string $time 通过时间
     * @param string $name 邀请的代理名称 下级代理名称
     */
    public static function sendAgentJoinMsg($openid,$id,$time,$name) {
        
        $data = [
            'openid' => $openid,
            'first' => sprintf('恭喜您成功推荐的%s成功注册成为品正商！', $name),
            'id' => $id,
            'time' => $time,
            'name' => $name,
            'remark' => '',
            'url' => ''
        ];
        // 恭喜您成功推荐的XX成功注册成为品正商，从此开启躺赚模式！
        NoticeService::sendAgentJoinMsg($data);
    }
    
    /**
     * 修改等级
     * @param int $passpordUid
     * @param string $time
     */
    public static function sendLevelChangeMsg($openid,$time) {
        
        $data = [
            'openid' => $openid,
            'first' => '恭喜您完成品正商招募任务，成功晋升为品正商V！每月可获得额外的领导积分奖励！',
            'time' => $time,
            'remark' => '',
            'url' =>  get_host().'/mobile/index/reward_leader.html'
        ];
        // 恭喜您成功推荐的XX成功注册成为品正商，从此开启躺赚模式！
        NoticeService::sendLevelChangeMsg($data);
    }
    
    /**
     * 订单奖励
     * @param string $openid
     * @param string $goodsname
     * @param float $total
     * @param float $reward
     */
    public static function sendOrderRewardMsg($openid,$goodsname,$total,$reward) {
        $data = [
            'openid' => $openid,
            'first' => '直属推荐奖励通知',
            'money'=>$reward,
            'time' => Tools::getDisplayDate(),
            'beizhu'=> sprintf('您的直属推荐人购买了%s商品，总价%s元，恭喜您获得%s元直属推荐奖励。',$goodsname,$total,$reward),
            'remark' => '奖励金额将于下个月结算到您的虚拟币余额，点击前往查看。',
            'url' => get_host().'/mobile/index/reward_order.html'
        ];
        
        //团队业绩奖励到账通知：您本月的团队业绩返利已到账，总计1234.00元。奖励金额已进入您的虚拟币余额，点击前往查看。
        NoticeService::sendRewardMsg($data);
    }
    
    /**
     * 直属推荐奖励到账通知
     * @param string $openid
     * @param string $month
     * @param float $reward
     */
    public static function sendOrderRewardMsgV2($openid,$month,$reward) {
        $data = [
            'openid' => $openid,
            'first' => '直属推荐奖励到账通知',
            'money'=>$reward,
            'time' => Tools::getDisplayDate(),
            'beizhu'=> sprintf('您%s月的直属推荐返利已到账，总计%s元。',$month,$reward),
            'remark' => '奖励金额已进入您的虚拟币余额，点击前往查看。',
            'url' => get_host().'/mobile/index/reward_order.html'
        ];
        
        //团队业绩奖励到账通知：您本月的团队业绩返利已到账，总计1234.00元。奖励金额已进入您的虚拟币余额，点击前往查看。
        NoticeService::sendRewardMsg($data);
    }
    
    /**
     * 发送团队奖励
     * @param string $openid
     * @param float $reward
     */
    public static function sendTeamRewardMsg($openid,$month,$reward) {
        $data = [
            'openid' => $openid,
            'first' => '团队业绩奖励到账通知',
            'money'=>$reward,
            'time' => Tools::getDisplayDate(),
            'beizhu'=> sprintf('您%s月的团队业绩返利已到账，总计%s元。',$month,$reward),
            'remark' => '奖励金额已进入您的虚拟币余额，点击前往查看。',
            'url' => get_host().'/mobile/index/reward_team.html'
        ];
        
        //团队业绩奖励到账通知：您本月的团队业绩返利已到账，总计1234.00元。奖励金额已进入您的虚拟币余额，点击前往查看。
        NoticeService::sendRewardMsg($data);
    }
    
    /**
     * 领导奖励
     * @param string $openid
     * @param string $month
     * @param float $reward
     */
    public static function sendLeaderRewardMsg($openid,$month,$reward) {
        $data = [
            'openid' => $openid,
            'first' => '领导积分奖励到账通知',
            'money'=>$reward,
            'time' => Tools::getDisplayDate(),
            'beizhu'=> sprintf('您%s月的领导积分返利已到账，总计%s元。',$month,$reward),
            'remark' => '奖励金额已进入您的虚拟币余额，点击前往查看。',
            'url' => get_host().'/mobile/index/reward_leader.html'
        ];
        
        //领导积分奖励到账通知：您本月的领导积分返利已到账，总计1234.00元。奖励金额已进入您的虚拟币余额，点击前往查看。
        NoticeService::sendRewardMsg($data);
    }
    
    /**
     * 订单取消金额返还
     * @param string $openid
     * @param float $money
     * @param string $orderNo
     */
    public static function sendAccountChangeMsg($openid,$money,$orderNo){
        $data = [
            'openid' => $openid,
            'first' => '取消订单,金额返还到账通知',
            'money'=>"返还 $money 元",
            'time' => Tools::getDisplayDate(),
            'beizhu'=> "订单:$orderNo 取消,返还金额",
            'remark' => '金额已进入您的虚拟币余额，点击前往查看。',
            'url' => get_host().'/mobile/index/assets.html'
        ];
        NoticeService::sendAccountChangeMsg($data);
    }
    
    /**
     * 订单发货通知
     * @param string $openid
     * @param float $money
     * @param string $orderNo
     */
    public static function sendOrderDeliveryMsg($openid,$id,$orderNo,$time,$address,$remark){
       
        $data = [
            'openid' => $openid,
            'first' => '订单发货通知',
            'order_no' => $orderNo,
            'time'=>$time,
            'address'=> $address,
            'remark' => $remark,
            'url' => get_host().sprintf('/mobile/index/order_detail.html?id=%s',$id),
        ];
        NoticeService::sendOrderDeliveryMsg($data);
    }
}
